Geomagnetic sensor and azimuth calculation method thereof

ABSTRACT

A geomagnetic sensor with 3-axis acceleration sensors is provided. The geomagnetic sensor a geomagnetic measurement module including flux gates of X, Y and Z axes mutually crossing at right angles, a tilt measurement module including acceleration sensors of X, Y and Z axes mutually crossing at right angles, a tilt calculator primarily calculating a pitch angle and a roll angle using output values of each acceleration sensors of the X and Y axes, and performing second calculation by adjusting at least one of the primarily calculated pitch angle and roll angle using an output value of the acceleration sensor of the Z axis, and a controller calculating an azimuth using the readjusted pitch angle and roll angle and an output value of the geomagnetic measurement module. Accordingly, the pitch angle and roll angle are precisely measured to calculate the azimuth.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of Korean Patent Application No.2005-0113472, filed Nov. 25, 2005, in the Korean Intellectual PropertyOffice, the disclosure of which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a geomagnetic sensor and an azimuthcalculation method medium thereof. More particularly, the presentinvention relates to a geomagnetic sensor precisely calculating a pitchangle and a roll angle according to a region using 3-axis accelerationsensors to calculate an azimuth and an azimuth calculation method andmedium thereof.

2. Description of the Related Art

A geomagnetic sensor is a device measuring the intensity and directionof geomagnetism, which a human can not feel, and more particularly, asensor measuring the geomagnetism using a flux gate is called a fluxgate geometric sensor.

The flux gate geometric sensor is a device measuring the intensity anddirection of an external magnetic field by using a high permeabilitymaterial such as permalloy as a magnetic core, adding excitationmagnetic field through a coil winding the magnetic core, and measuringsecond harmonic component proportional to the external magnetic fieldgenerated according to magnetic saturation of the magnetic core andnon-linear magnetic features. The flux gate geometric sensor wasdeveloped in the late 1930s and is good in sensitivity, cost-effectiveand miniaturized, compared with many kinds of other geomagnetic sensors.

Especially, as a micro electro mechanical system (MEMS) technology isnowadays developing, a micro flux gate sensor with low power consumptioncan be equipped in various portable electronic devices including a cellphone, personal digital assistant (PDA) and laptop computer using thetechnology.

Meanwhile, the geomagnetic sensor generally uses a 2 or 3 axis fluxgate. When an azimuth is measured using the geomagnetic sensor, if thegeomagnetic sensor is tilted, the azimuth can be miscalculated.Accordingly, an algorithm compensating the azimuth using a tilt angle,that is, a pitch angle and a roll angle is generally performed.Therefore, a conventional geomagnetic sensor calculates the pitch angleand the roll angle using 2-axis acceleration sensors to compensate theazimuth. In this case, the range of measuring a tilt is limited to ±90°.

In addition, the conventional geomagnetic sensor calculates the pitchangle and the roll angle by applying a function of sin⁻¹ ( ) to a valueof X axis and a value of Y axis of the acceleration sensor. However, ifthe tilt is over 60°, the tilt of a signal gets flat because of thenature of a sine function. In this case, if the resolving power of ananalog to digital converter (ADC) converting an output value of theacceleration sensor into a digital value is not high enough, a tiltangle can not precisely be acquired. Specifically, if the tilt is over+90°, for example, if the tilt is 120°, +60° instead of +120° isrecognized.

So, if an error occurs in the calculated pitch angle value and rollangle value, azimuth compensation does not work well so that the azimuthitself is miscalculated.

SUMMARY OF THE INVENTION

Additional aspects and/or advantages of the invention will be set forthin part in the description which follows and, in part, will be apparentfrom the description, or may be learned by practice of the invention.

An aspect of the present invention is to solve at least the aboveproblems and/or disadvantages and to provide at least the advantagesdescribed below. Accordingly, an aspect of the present invention is toprovide a geomagnetic sensor, which primarily calculates a pitch angleand a roll angle using 3-axis acceleration sensors, calculates theprecise pitch angle and roll angle by readjusting the pitch angle andthe roll angle using an output value of acceleration sensor of Z axis,and precisely compensates an azimuth using the pitch angle and the rollangle, and an azimuth calculation method thereof.

In order to achieve the above-described aspects of the presentinvention, there is provided a geomagnetic sensor, including ageomagnetic measurement module including flux gates of X, Y and Z axesmutually crossing at right angles, a tilt measurement module includingacceleration sensors of X, Y and Z axes mutually crossing, at rightangles, a tilt calculator primarily calculating a pitch angle and a rollangle using output values of each acceleration sensors of the X and Yaxes, and performing second calculation by adjusting at least one of theprimarily calculated pitch angle and roll angle using an output value ofthe acceleration sensor of the Z axis, and a controller calculating anazimuth using the readjusted pitch angle and roll angle and an outputvalue of the geomagnetic measurement module.

The tilt measurement module may normalize the output values of eachacceleration sensor of the X, Y and Z axes into values of a presetrange, and transmit the normalized values to the tilt calculator.

The tilt calculator may primarily calculate θ_(X) Φ_(Y) θ_(Z), and Φ_(Z)using the acceleration sensors of X, Y and Z axes.

The tilt calculator can perform the second calculation in a manner thatwhen the θ_(X) is between 0° and 45°, if the θ_(Z) is 0° or more, theθ_(X) becomes the pitch angle, or if the θ_(Z) is under 0°, 180°−θ_(X)becomes the pitch angle, when the θ_(X) is 45° or more, if Φ_(Y) isunder 45°, 90°−_(Z) becomes the pitch angle, or if the Φ_(Y) is 45° ormore, the θ_(X) becomes the pitch angle, when the θ_(X) is between−45°and 0°, if the θ_(Z) is 0° or more, the θ_(X) becomes the pitchangle, or if the θ_(Z) is under 0°, −180°−θ_(X) becomes the pitch angle,or when the θ_(X) is under −45°, if the Φ_(Y) is under 45°, θ_(Z −)90°becomes the pitch angle, or if the Φ_(Y) is 45° or more, the θ_(X)becomes the pitch angle.

Meanwhile, the tilt calculator may perform the second calculation in amanner that when the Φ_(Y) is between 0° and 45°, if the Φ_(Z) is 0° ormore, the Φ_(Z) becomes the roll angle, or if the Φ_(Z) is under 0°,180°−Φ_(Y) becomes the roll angle, when the Φ_(Y) is 45° or more, if theΦ_(X) is under 45°, 90°−Φ_(Z) becomes the roll angle or if the θ_(X) is45° or more, the Φ_(Y) becomes the roll angle, when the Φ_(Y) is between−45° and 0°, if the Φ_(Z) is 0° or more, the Φ_(Y) becomes the rollangle, or if the Φ_(Z) is under 0°, −180°−Φ_(Y) becomes the roll angle,or when the Φ_(Y) is under −45° , if the θ_(X) is under 45°, Φ_(Z)−90°becomes the roll angle, or if the θ_(X) is 45° or more, the Φ_(Y)becomes the roll angle.

The geomagnetic measurement module may normalize the output values ofeach flux gate of the X, Y and Z axes into values of a preset range, andprovides the normalized values to the controller.

The controller calculates the azimuth by applying the normalized outputvalues of each flux gate of the X, Y and Z and the readjusted pitchangle and roll angle to a predetermined equation.

A method and medium of calculating an azimuth according to an embodimentof the present invention includes (a) calculating output values of fluxgates of X, Y and Z axes using the flux gates of the X, Y and Z axesmutually crossing at right angles, (b) primarily calculating a pitchangle and a roll angle using acceleration sensors of X, Y and Z axesmutually crossing at right angles, (c) adjusting at least one of theprimarily calculated pitch angle and roll angle using an output value ofthe acceleration sensor of the Z axis, and (d) calculating the azimuthusing the readjusted pitch angle and roll angle and an output value of ageomagnetic measurement module.

In the step of (b), the output values of each acceleration sensor of theX, Y and Z axes may be normalized into values of a preset range usingpredetermined equations.

In the step of (b), θ_(X) Φ_(Y) θ_(Z), and Φ_(Z) may primarily becalculated using the acceleration sensors of X, Y and Z axes.

In the step of (c), the pitch angle may be readjusted in a manner thatwhen the ex is between 0° and 45°, if the θ_(Z) is 0° or more, the θ_(X)becomes the pitch angle, or if the θ_(Z) is under 0°, 180° −θ_(X)becomes the pitch angle, when the θ_(X) is 45° or more, if Φ_(Y) isunder 45°, 90°−θ_(Z) becomes the pitch angle, or if the Φ_(Y) is 45° ormore, the θ_(X) becomes the pitch angle, when the θ_(X) is between −45°and 0°, if the θ_(Z) is 0° or more, the θ_(X) becomes the pitch angle,or if the θ_(Y) θ_(Z) is under 0°, −180°−θ_(X) becomes the pitch angle,or when the θ_(X) is under −45°, if the Φ_(Y) is under 45°, θ_(Z)−90°becomes the pitch angle, or if the Φ_(Y) is 45° or more, the θ_(X)becomes the pitch angle.

In the step of (c), the roll angle may be readjusted in a manner thatwhen the Φ_(Y) is between 0° and 45°, if the Φ_(Z) is 0° or more, theΦ_(Z) becomes the roll angle, or if the Φ_(Z) is under 0°, 180° −Φ_(Y)becomes the roll angle, when the Φ_(Y) is 45° or more, if the Φ_(X) isunder 45°, 90°−Φ_(Z) becomes the roll angle, or if the θ_(X) is 45° ormore, the Φ_(Y) becomes the roll angle, when the Φ_(Y) is between −45°and 0°, if the Φ_(Z) is 0° or more, the Φ_(Y) becomes the roll angle, orif the Φ_(Z) is under 0°, −180°−Φ_(Y) becomes the roll angle, or whenthe Φ_(Y) is under −45°, if the θ_(X) is under −45°, Φ_(Z)−90° becomesthe roll angle, or if the θ_(X) is 45° or more, the Φ_(Y) becomes theroll angle.

Meanwhile, in the step of (a), the output values of each flux gate ofthe X, Y and Z axes can be normalized into values of a preset rangeusing predetermined equations.

In addition, in the step of (d), the azimuth can be calculated byapplying the normalized output values of each flux gate of the X, Y andZ and the readjusted pitch angle and roll angle to predeterminedequation:

BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects, features, and advantages of the inventionwill become apparent and more readily appreciated from the followingdescription of exemplary embodiments, taken in conjunction with theaccompanying drawings of which:

FIG. 1 is a block diagram showing the configuration of a geomagneticsensor according to an exemplary embodiment of the present invention;

FIG. 2 is a block diagram showing an example of the configuration of thetilt measurement module used in the geomagnetic sensor of FIG. 1;

FIG. 3 shows an example of 3-axis location of the geomagneticmeasurement module and the tilt measurement module in the geomagneticsensor of FIG. 1;

FIGS. 4 and 5 show a readjusted region of a pitch angle and a rollangle, respectively;

FIG. 6 is a flow chart showing an azimuth calculation method accordingto an exemplary embodiment of the present invention;

FIG. 7 is a flow chart showing an example of a pitch angle calculationmethod used in the azimuth calculation method of FIG. 6; and

FIG. 8 is a flow chart showing an example of a roll angle calculationmethod used in the azimuth calculation method of FIG. 6.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference will now be made in detail to exemplary embodiments of thepresent invention, examples of which are illustrated in the accompanyingdrawings, wherein like reference numerals refer to the like elementsthroughout. Exemplary embodiments are described below to explain thepresent invention by referring to the figures.

Hereinafter, an exemplary embodiment of the present invention will bedescribed in detail with reference to the accompanying drawing figures.

FIG. 1 is a block diagram showing the configuration of a geomagneticsensor according to an exemplary embodiment of the present invention.According to FIG. 1, the geomagnetic sensor 100 includes a geomagneticmeasurement module 110, a tilt measurement module 120, a tilt calculator130 and a controller 140.

The geomagnetic measurement module 110 outputs a voltage valuecorresponding to an external geomagnetism. In detail, the geomagneticmeasurement module 110 can include flux gates of X, Y and Z axesmutually crossing at right angles. Accordingly, an output valuecorresponding to the geomagnetism can be obtained by supplying anelectric signal to each axis flux gate.

The tilt measurement module 120 outputs a voltage value corresponding tothe tilt of the main body of the geomagnetic sensor 100. Specifically,the tilt measurement module 120 has acceleration sensors of X, Y and Zaxes mutually crossing at right angles. Accordingly, an output value ofacceleration sensor of each axis corresponding to the tilt can beobtained by supplying an electric signal to each axis accelerationsensor.

FIG. 2 is a block diagram showing an example of the configuration of thetilt measurement module 120. According to FIG. 2, the tilt measurementmodule 120 includes 3-axis acceleration sensors 122, a signal processor123, a tilt measurement controller 124 and a memory 125.

The 3-axis acceleration sensors 122 consist of acceleration sensors ofX, Y and Z axes mutually crossing at right angles.

The signal processor 123 converts output values of each accelerationsensor of X, Y and Z axes into a digital value, and transmits thedigital value to the tilt measurement controller 124.

The tilt measurement controller 124 normalizes the output values of eachacceleration sensor of X, Y and Z axes received from the signalprocessor 123 by mapping it with a value of a preset range. Thenormalization ranges from −1 to +1. The normalization can be performedas below. $\begin{matrix}{{{AX}_{norm} = \frac{\left( {{AX}_{raw} - {AX}_{offset}} \right)}{{AX}_{Scale}}}{{AY}_{norm} = \frac{\left( {{AY}_{raw} - {AY}_{offset}} \right)}{{AY}_{Scale}}}{{AZ}_{norm} = \frac{\left( {{AZ}_{raw} - {AZ}_{offset}} \right)}{{AZ}_{Scale}}}} & \left\lbrack {{Equation}\quad 1} \right\rbrack\end{matrix}$

In Equation1, AX_(norm), AY_(norm) and AZ_(norm) are the normalizedoutput value of each acceleration sensor of X, Y and Z axesrespectively, AX_(raw), AY_(raw), and AZ_(raw) are the real output valueof each acceleration sensor of X, Y and Z axes respectively,AX_(offset), AY_(offset) and AZ_(offset) are the preset offset value ofeach acceleration sensor of X, Y and Z axes respectively, andAX_(scale)AY_(scale) and AZ_(scale) are the preset scale value of eachacceleration sensor of X, Y and Z axes respectively.

As described above, to map the output values of each acceleration sensorof X, Y and Z axes from −1 to +1, if AX_(norm), AY_(norm) and AZ_(norm)are over +1, AX_(norm), AY_(norm) and AZ_(norm) may be fixed to +1, andif AX_(norm), AY_(norm) and AZ_(norm) are under −1, AX_(norm), AY_(norm)and AZ_(norm) may be fixed to −1.

For the offset value and scale value of each acceleration sensor, avalue used in a previous normalization process can be stored in thememory 125 and be read for use.

Alternatively, the offset value and scale value can be calculated asbelow. $\begin{matrix}\begin{matrix}{{{AX}_{offset} = \frac{\left( {{AX}_{\max} + {AX}_{\min}} \right)}{2}},} & {{AX}_{Scale} = \frac{\left( {{AX}_{\max} - {AX}_{\min}} \right)}{2}} \\{{{AY}_{offset} = \frac{\left( {{AY}_{\max} + {AY}_{\min}} \right)}{2}},} & {{AY}_{Scale} = \frac{\left( {{AY}_{\max} - {AY}_{\min}} \right)}{2}} \\{{{AZ}_{offset} = \frac{\left( {{AZ}_{\max} + {AZ}_{\min}} \right)}{2}},} & {{AZ}_{Scale} = \frac{\left( {{AZ}_{\max} - {AZ}_{\min}} \right)}{2}}\end{matrix} & \left\lbrack {{Equation}\quad 2} \right\rbrack\end{matrix}$

In Equation 2, AX_(max), AY_(max) and AZ_(max) are the maximum value ofAX_(raw), AY_(raw) and AZ_(raw) respectively, and AX_(min), AY_(min) andAZ_(min) are the minimum value of AX_(raw), AY_(raw) and Az_(raw)respectively. AX_(max), AY_(max), AZ_(max), AX_(min), AY_(min) andAZ_(min) can be generated by selecting the maximum and minimum valuesamong AX_(raw), AY_(raw) and AZ_(raw) measured by rotating thegeomagnetic sensor 100 at least once in a preparation step beforeazimuth measurement, and be stored in the memory 125. Accordingly,AX_(max), AY_(max), AZ_(max), Ax_(min), AY_(min) and AZ_(min) can beread to use in the normalization process.

Returning to FIG. 1, the tilt calculator 130 receives the normalizedoutput value of each acceleration sensor of X, Y and Z axes from thetilt measurement module 120, and primarily calculates the pitch angleand the roll angle. The pitch angle and roll angle are primarilycalculated as follows. $\begin{matrix}\begin{matrix}{\theta_{X} = {\sin^{- 1}\left( {AX}_{norm} \right)}} \\{\phi_{Y} = {\sin^{- 1}\left( {{{AY}_{norm}/\cos}\quad\theta_{X}} \right)}} \\{\theta_{Z} = {{\sin^{- 1}\left( {AZ}_{mod} \right)}\left\{ {{wherein},\quad{{AZ}_{mod} = \frac{{AZ}_{norm}}{\cos\quad\phi_{Y}}}} \right\}}} \\{\phi_{Z} = {{\sin^{- 1}\left( {{{AZ}_{mod}/\cos}\quad\theta_{X}} \right)}\left\{ {{wherein},\quad{{AZ}_{mod} = \frac{{AZ}_{norm}}{\cos\quad\theta_{X}}}} \right\}}}\end{matrix} & \left\lbrack {{Equation}\quad 3} \right\rbrack\end{matrix}$

In Equation 3, θ_(X) is the pitch angle calculated using theacceleration sensor of X axis, Φ_(Y) is the roll angle calculated usingthe acceleration sensor of Y axis, θ_(Z) is the pitch angle calculatedusing the acceleration sensor of Z axis, and Φ_(Z) is the roll anglecalculated using the acceleration sensor of Z axis.

Meanwhile, in Equation 3, cosΦ_(Y) and cosθ_(X) are located in thedenominator. Therefore, if θ_(X) or Φ_(Y) is 90°, the denominatorbecomes 0 so that an error occurs. To prevent this, θ_(X) and Φ_(Y) of90° are replaced with 89° or 91°.

AX_(norm), AY_(norm), AZ_(norm), and AZ_(mod) are saturated not to beover the range of ±1. That is, to apply to Equation 3, over +1 is fixedto +1 and under −1 is fixed to −1.

Meanwhile, Equation 3 varies according to an exemplary embodiment. Thatis, θ_(Z) can be calculated using cos⁻¹(AZ_(norm)).

The tilt calculator 130 performs the secondary calculation to finalizethe pitch angle and roll angle according to the size of the primarilycalculated θ_(X), Φ_(Y), θ_(Z) and Φ_(Z). In detail, the tilt calculator130 calculates the pitch angle by combination of θ_(X) and θ_(Z), andcalculates the roll angle by combination of Φ_(Y) and Φ_(Z).

First, to calculate the pitch angle, the tilt calculator 130 determinesif θ_(X) is between 0° and 45°. If θ_(X) is between 0° and 45°, it isdetermined if θ_(Z) is 0° or more. If θ_(Z) is 0° or more, θ_(Z) becomesthe pitch angle. However, if θ_(Z) is under 0°, 180° −θ_(X) becomes thepitch angle. As described above, in the case of the function of sin⁻¹ (), the resolving power decreases on the basis of 45°. If theacceleration sensor of X axis is tilted on the basis of Y axis, Z axisbecomes tilted. If the acceleration sensor of X axis is tilted by 45° ormore, θ_(Z) becomes lower than 0° so that 180° −θ_(X) becomes a precisepitch angle. According to this theory, the secondary calculation for thepitch angle and roll angle can be performed using the pitch angle θ_(Z)and roll angle Φ_(Z) measured by the acceleration sensor of Z axis.

Meanwhile, if θ_(X) is 45° or more, it is determined if Φ_(Y) is 45° ormore. If Φ_(Y) is 45° or more, θ_(X) becomes the pitch angle. Or, ifΦ_(Y) is under 45°, 90°−θ_(Z) becomes the pitch angle.

If θ_(X) is between −45° and 0°, it is determined if θ_(X) is 0° ormore. If θ_(Z) is 0° or more, θ_(X) becomes the pitch angle. Or, ifθ_(Z) is under 0°, −180° −θ_(X) becomes the pitch angle.

If θ_(X) is under −45°, it is determined if Φ_(Y) is 45° or more. IfΦ_(Y) is 45° or more, θ_(X) becomes the pitch angle. However, if Φ_(Y)is under 45°, θ_(Z)−90° becomes the pitch angle. In this method, thepitch angle can finally be determined.

Next, to calculate the roll angle, first it is determined if Φ_(Z) isbetween 0° and 45°. If Φ_(Y) is between 0° and 45°, it is determined ifΦ_(Y) is 0° or more. If Φ_(Z) is 0° or more, Φ_(Z) becomes the rollangle. However, if Φ_(Z) is under 0°, 180° −Φ_(Y) becomes the rollangle.

Meanwhile, if Φ_(Y) is 45° or more, it is determined if θ_(X) is 45° ormore. If θ_(X) is 45° or more, Φ_(Y) becomes the roll angle. However, ifΦ_(X) is under 45°, 90°−Φ_(Z) becomes the roll angle.

Meanwhile, if Φ_(Y) is between −45° and 0°, it is determined if Φ_(Z) is0° or more. If Φ_(Z) is 0° or more, Φ_(Y) becomes the roll angle.However, if Φ_(Z) is under 0°, −180° −Φ_(Y) becomes the roll angle.

Furthermore, if Φ_(Y) is under −45°, it is determined if Φ_(X) is 45° ormore. If θ_(X) is 45° or more, Φ_(Y) becomes the roll angle. However, ifθ_(X) is under 45°, Φ_(Z)−90° becomes the roll angle. In this method,the roll angle can finally be determined.

The controller 140 can calculate an azimuth using the secondarilycalculated and readjusted pitch angle and roll angle. To calculate theazimuth, the geomagnetic measurement module 110 normalizes the outputvalues of each flux gate of X, Y and Z axes using equations below totransmit to the controller 140. $\begin{matrix}{{X_{norm} = \frac{\left( {X_{raw} - X_{offset}} \right)}{X_{Scale}}}{Y_{norm} = \frac{\left( {Y_{raw} - Y_{offset}} \right)}{Y_{Scale}}}{Z_{norm} = \frac{\left( {Z_{raw} - Z_{offset}} \right)}{Z_{Scale}}}} & \left\lbrack {{Equation}\quad 4} \right\rbrack\end{matrix}$

where X_(norm), Y_(norm) and Z_(norm) are the normalized output value ofeach flux gate of X, Y and Z axes respectively, X_(raw), Y_(raw) andZ_(raw) are the real output value of each flux gate of X, Y and Z axesrespectively, X_(offset), Y_(offset) and Z_(offset) are the presetoffset value of each flux gate of X, Y and Z axes respectively, andX_(Scale), Y_(Scale) and Z_(Scale) are the preset scale value of eachflux gate of X, Y and Z axes respectively.

X_(offset), Y_(offset), Z_(offset), X_(Scale), Y_(Scale) and Z_(Scale)can be stored in the geomagnetic measurement module 110's own memory(not shown); or can directly be calculated using an equation of the sameform of Equation 2. As the detailed configuration of the geomagneticmeasurement module 110 is conventional and is similar to that of thetilt measurement module 120 in FIG. 2, a drawing and description of thegeomagnetic measurement module 110 is omitted.

The controller 140 applies the readjusted pitch angle and roll angle andthe normalized output value of each flux gate of X, Y and Z axes to thebelow equation to calculate the azimuth. $\begin{matrix}{\psi = {\tan^{- 1}\left( \frac{{Y_{norm}*\cos\quad\phi} - {Z_{norm}*\sin\quad\phi}}{\begin{matrix}{{X_{norm}*\cos\quad\theta} - {Y_{norm}*\sin\quad\theta*\sin\quad\phi} -} \\{Z_{norm}*\sin\quad\theta*\cos\quad\phi}\end{matrix}} \right)}} & \left\lbrack {{Equation}\quad 5} \right\rbrack\end{matrix}$

In Equation 5, X_(norm), Y_(norm) and Z_(norm) are the normalized outputvalue of each flux gate of X, Y and Z axes respectively, Φ is the pitchangle, and Φ is the roll angle. Equation 5 is an equation correspondingto when a value of Z axis vertical to a horizontal plane is set to anegative number. In other words, Equation 5 is effective in a case wherethe 3-axis geomagnetic sensor 100 is horizontally located on the earthsurface of the 3-axis Northern Hemisphere as in FIG. 3 when the 3-axisgeomagnetic sensor 100 is located as in FIG. 3. In this case, thenormalized value of Z axis is obtained as a negative value.

Meanwhile, signs in Equations 3 and 5 change according to the locationof the axes in the 3-axis flux gates of the geomagnetic measurementmodule 110 and the 3-axis acceleration sensors of the tilt measurementmodule 120. The signs in Equations 3 and 5, change in a case where thepitch angle is greater than 90° when the azimuth is calculated. Forexample, if the pitch angle is 120°, signals of X and Y axes of thesignals of the geomagnetic sensor 100 change their signs, and theacceleration sensor changes θ=θ−180 to apply to the equations.

FIG. 3 shows an example of 3-axis location in the 3-axis flux gates and3-axis acceleration sensors. According to FIG. 3, each X axis of thegeomagnetic measurement module 110 and the tilt measurement module 120in the geomagnetic sensor 100 is located in the forward direction of thegeomagnetic sensor 100, each Y axis is located in the directionperpendicular to each X axis on the same flat where the geomagneticsensor 100 is located, and each Z axis is located in the upwarddirection of the geomagnetic sensor 100, crossing with X and Y axes atright angles. Equations 3 and 5 are applied when 3 axes are located asin FIG. 3.

FIG. 4 is a graph entirely showing the region of the pitch angle. Theregion of the pitch angle is divided into 4 large regions P1˜P4according to the size of θ_(X), and each large region is divided into 2small regions a and b.

Accordingly, if it is 0°≦θ_(X)<45° and θ_(Z)≧0°, the region of the pitchangle is recognized as an a region of P1, that is, P1-a, and θ_(X)becomes the pitch angle. However, if it is 0°≦θ_(X)<45° and θ_(Z)<0°,the region of the pitch angle is recognized as P1-b and 180°−θ_(X)becomes the pitch angle.

If it is θ_(X)≧45° and θ_(Z)≧0°, the region of the pitch angle isrecognized as P2-a and θ_(X) becomes the pitch angle. However, if it isθ_(X)≧45° and θ_(Z)<0°, the region of the pitch angle is recognized asP2-b and 90°−θ_(Z) becomes the pitch angle.

If it is −45°≦θ_(X)<0° and θ_(Z)<0°, the region of the pitch angle isrecognized as P3-a and −180°−θ_(X) becomes the pitch angle. However, ifit is −45°≦θ_(X)<0° and θ_(Z)≧0°, the region of the pitch angle isrecognized as P3-b and θ_(X) becomes the pitch angle.

Meanwhile, if it is θ_(X)<−45°, the region of the pitch angle isrecognized as the large region of P4. In this case, the small region isdetermined according to the size of θ_(Z). That is, if it is θ_(X)<−45°and θ_(Z)<0°, the region of the pitch angle is recognized as P4-a. If itis Φ_(Y)≧45° in the region of P4-a, θ_(X) becomes the pitch angle, or ifit is Φ_(Y)<45° in the region of P4-a, θ_(Z)−90° becomes the pitchangle. However, if it is θ_(X)<−45° and θ_(Z)≧0°, the region of thepitch angle is recognized as P4-b. If it is Φ_(Y)≧45° in the region ofP4-b, θ_(X) becomes the pitch angle, or if it is Φ_(Y)<45° in the regionof P4-b, θ_(Z)−90° becomes the pitch angle.

FIG. 5 is a graph entirely showing the region of the roll angle. Theregion of the roll angle is divided into 4 large regions R1˜R4 accordingto the size of Φ_(Y), and each large region is divided into 2 smallregions a and b.

Accordingly, if it is 0°≦Φ_(Y)<45° and Φ_(Z)≧0°, the region of the rollangle is recognized as an a region of R1, that is, R1-a, and Φ_(Y)becomes the roll angle. However, if it is 0°≦Φ_(Y)<45° and Φ_(Z)<0°, theregion of the roll angle is recognized as R1-b and 180°−Φ_(Y) becomesthe roll angle.

If it is Φ_(Y)≦45° and Φ_(Z)≧0°, the region of the roll angle isrecognized as R2-a and Φ_(Y) becomes the roll angle. However, if it isΦ_(Y)≧45° and Φ_(Z)<0°, the region of the roll angle is recognized asR2-b and 90°−Φ_(Y) becomes the roll angle.

If it is −45°≦Φ_(Y)<0° and Φ_(Z)<0°, the region of the roll angle isrecognized as R3-a and −180°−Φ_(Y) becomes the roll angle. However, ifit is −45°≦Φ_(Y)≦0° and Φ_(Y)≧0°, the region of the roll angle isrecognized as R3-b and Φ_(Y) becomes the roll angle.

Meanwhile, if it is Φ_(Y)<−45°, the region of the roll angle isrecognized as the large region of R4. In this case, the small region isdetermined according to the size of Φ_(Z). That is, if it is Φ_(Y)<−45°and Φ_(Z)<0°, the region of the roll angle is recognized as R4-a. If itis θ_(X)≧45° in the region of R4-a, coy becomes the roll angle, or if itis θ_(X)<45° in the region of R4-a, Φ_(Z)−90° becomes the roll angle.

Meanwhile, if it is Φ_(Y)<−45° and Φ_(Z)≧0°, the region of the rollangle is recognized as R4-b. If it is θ_(X)≧45° in the region of R4-b,Φ_(Y) becomes the roll angle, or if it is θ_(X)<45° in the region ofR4-b, Φ1 _(Z)−90° becomes the roll angle.

Referring to FIGS. 4 and 5, the pitch angle and roll angle can bemeasured in the range of ±180°.

FIG. 6 is a flow chart showing an azimuth calculation method accordingto an exemplary embodiment of the present invention. According to FIG.6, the output values of each flux gate of X, Y and Z axes is calculatedand normalized (S610), and the pitch angle and roll angle are primarilycalculated using each acceleration sensor of X, Y and Z axes (S620).Specifically, θ_(X), Φ_(Y), θ_(Z) and Φ_(Z) are primarily calculated.

Subsequently, the second calculation is performed to readjust θ_(X),Φ_(Y), θ_(Z) and Φ_(Z) using the output value of the acceleration sensorof Z axis (S630).

As a result of the second calculation, if the pitch angle and roll angleare finalized, the azimuth is calculated using the readjusted pitchangle and roll angle and the normalized output value of each flux gateof X, Y and Z axes (S640). The azimuth can be calculated using Equation5.

FIG. 7 is a flow chart specifically describing a pitch angle calculationmethod used in the azimuth calculation method of FIG. 6. According toFIG. 7, first the output values of each acceleration sensor of X, Y andZ axes is normalized by mapping it with a value of a predetermined range(S710). The normalization can be performed using Equation 1.

As a result, if θ_(X), Φ_(Y), θ_(Z) and Φ_(Z) are primarily calculated(S715), it is determined if θ_(X) is between 0° and 45° (S720). If θ_(X)is between 0° and 45°, it is determined if θ_(Z) is 0° or more (S725).If θ_(Z) is 0° or more, θ_(X) becomes the pitch angle (S730). However,if θ_(Z) is under 0°, 180°−θ_(X) becomes the pitch angle (S735).

Meanwhile, if θ_(X) is not between 0° and 45°, it is determined if θ_(X)is 45° or more (S740). As a result, if θ_(X) is 45° or more, it isdetermined if Φ_(Y) is under 45° (S745). If Φ_(Y) is under 45°,90°−θ_(Z) becomes the pitch angle (S750). Or, if Φ_(Y) is 45° or more,θ_(X) becomes the pitch angle (S755).

Meanwhile, if θ_(X) is neither between 0° and 45° nor 45° or more, it isdetermined if θ_(X) is between −45° and 0° (S760). If θ_(X) is between−45° and 0°, it is determined if θ_(Z) is 0° or more (S765). If θ_(Z) is0° or more, θ_(X) becomes the pitch angle (S770). Or, if θ_(Z) is under0°, −180°−θ_(X) becomes the pitch angle (S775).

Meanwhile, if θ_(X) is not between −45° and 0°, either, it is determinedif θ_(X) is under −45° (S780). Also, it is determined if θ_(Y) is under45° (S785). If Φ_(Y) is under 45°, θ_(Z)−90° becomes the pitch angle(S790). Or, if Φ_(Y) is 45° or more, θ_(X) becomes the pitch angle(S795).

FIG. 8 is a flow chart specifically describing a roll angle calculationmethod used in the azimuth calculation method of FIG. 6. According toFIG. 8, first the output values of each acceleration sensor of X, Y andZ axes is normalized by mapping it with a value of a predetermined range(S810). The normalization can be performed using Equation 1.

As a result, if θ_(X), Φ_(Y), θ_(Z) and Φ_(Z) are primarily calculated(S815), it is determined if Φ_(Y) is between 0° and 45° (S820). If Φ_(Y)is between 0° and 45°, it is determined if Φ_(Z) is 0° or more (S825).If Φ_(Z) is 0° or more, Φ_(Y) becomes the roll angle (S830). However, ifΦ_(Z) is under 0°, 180°−Φ_(Y) becomes the roll angle (S835).

Meanwhile, if Φ_(Y) is not between 0° and 45°, it is determined if Φ_(Y)is 45° or more (S840). As a result, if Φ_(Y) is 45° or more, it isdetermined if θ_(X) is under 45° (S845). If θ_(X) is under 45°,90°−Φ_(Z) becomes the roll angle (S850). Or, if θ_(X) is 45° or more,Φ_(Y) becomes the roll angle (S855).

Meanwhile, if Φ_(Y) is neither between 0° and 45° nor 45° or more, it isdetermined if Φ_(Y) is between −45° and 0° (S860). If Φ_(Y) is between−45° and 0°, it is determined if Φ_(Z) is 0° or more (S865). If Φ_(Z) is0° or more, Φ_(Z) becomes the roll angle (S870). Or, if Φ_(Z) is under0°, −180°−Φ_(Y) becomes the roll angle (S875).

Meanwhile, if Φ_(Y) is not between −45° and 0°, either, it is determinedif Φ_(Z) is under −45° (S880). Also, it is determined if θ_(X) is under45° (S885). If θ_(X) is under 45°, Φ_(Z)−90° becomes the roll angle(S890). Or, if θ_(Y) is 45° or more, Φ_(Y) becomes the roll angle(S895).

Therefore, the pitch angle and roll angle are precisely calculated alsoin a region where the resolving power of an inverse tangent (ARCSIN)function decreases so that the azimuth can be compensated.

As can be appreciated from the above description, the pitch angle androll angle are precisely calculated using 3-axis acceleration sensor.That is, the pitch angle and roll angle are primarily calculated usingeach acceleration sensor of X and Y axes, and the pitch angle and rollangle are readjusted by the second calculation using an output value ofacceleration sensor of Z axis. Accordingly, even when the resolvingpower of the ADC is not high enough, the pitch angle and roll angle canbe precisely calculated. Consequently, the azimuth can precisely becalculated. In addition, the range of measuring the pitch angle and rollangle is extended from ±90° to ±180°.

In addition to the above-described exemplary embodiments, exemplaryembodiments of the present invention can also be implemented byexecuting computer readable code/instructions in/on a medium, e.g., acomputer readable medium. The medium can correspond to any medium/mediapermitting the storing and/or transmission of the computer readablecode.

The computer readable code/instructions can be recorded/transferredin/on a medium in a variety of ways, with examples of the mediumincluding magnetic storage media (e.g., floppy disks, hard disks,magnetic tapes, etc.), optical recording media (e.g., CD-ROMs, or DVDs),magneto-optical media (e.g., floptical disks), hardware storage devices(e.g., read only memory media, random access memory media, flashmemories, etc.) and storage/transmission media such as carrier wavestransmitting signals, which may include instructions, data structures,etc. Examples of storage/transmission media may include wired and/orwireless transmission (such as transmission through the Internet).Examples of wired storage/transmission media may include optical wiresand metallic wires. The medium/media may also be a distributed network,so that the computer readable code/instructions is stored/transferredand executed in a distributed fashion. The computer readablecode/instructions may be executed by one or more processors.

Although a few exemplary embodiments of the present invention have-beenshown and described, it would be appreciated by those skilled in the artthat changes may be made in these exemplary embodiments withoutdeparting from the principles and spirit of the invention, the scope ofwhich is defined in the claims and their equivalents.

1. A geomagnetic sensor, comprising: a geomagnetic measurement moduleincluding flux gates of X, Y and Z axes mutually crossing at rightangles; a tilt measurement module including acceleration sensors of X, Yand Z axes mutually crossing at right angles; a tilt calculatorprimarily calculating a pitch angle and a roll angle using output valuesof each acceleration sensor of the X and Y axes, and performing secondcalculation by adjusting at least one of the primarily calculated pitchangle and roll angle using an output value of the acceleration sensor ofthe Z axis; and a controller calculating an azimuth using the readjustedpitch angle and roll angle and an output value of the geomagneticmeasurement module.
 2. The geomagnetic sensor of claim 1, wherein thetilt measurement module normalizes the output values of eachacceleration sensor of the X, Y and Z axes into values of a preset rangeusing the following equations, and transmits the normalized values tothe tilt calculator:${AX}_{norm} = \frac{\left( {{AX}_{raw} - {AX}_{offset}} \right)}{{AX}_{Scale}}$${AY}_{norm} = {\frac{\left( {{AY}_{raw} - {AY}_{offset}} \right)}{{AY}_{Scale}}\quad{and}}$${AZ}_{norm} = \frac{\left( {{AZ}_{raw} - {AZ}_{offset}} \right)}{{AZ}_{Scale}}$where AX_(norm), AY_(norm) and AZ_(norm) are the normalized outputvalues of each acceleration sensor of the X, Y and Z axes respectively,AX_(raw), AY_(raw) and AZ_(raw) are the real output values of eachacceleration sensor of the X, Y and Z axes respectively, AX_(offset),AY_(offset) and AZ_(offset) are the preset offset values of eachacceleration sensor of the X, Y and Z axes respectively, and AX_(scale),AY_(scale) and AZ_(scale) are the preset scale values of eachacceleration sensor of the X, Y and Z axes respectively.
 3. Thegeomagnetic sensor of claim 2, wherein the tilt calculator primarilycalculates the pitch angle and roll angle using the following equations:$\begin{matrix}{\theta_{X} = {\sin^{- 1}\left( {AX}_{norm} \right)}} \\{\phi_{Y} = {\sin^{- 1}\left( {{{AY}_{norm}/\cos}\quad\theta_{X}} \right)}} \\{\theta_{Z} = {{\sin^{- 1}\left( {AZ}_{mod} \right)}\left\{ {{wherein},\quad{{AZ}_{mod} = \frac{{AZ}_{norm}}{\cos\quad\phi_{Y}}}} \right\}\quad{and}}} \\{\phi_{Z} = {{\sin^{- 1}\left( {{{AZ}_{mod}/\cos}\quad\theta_{X}} \right)}\left\{ {{wherein},\quad{{AZ}_{mod} = \frac{{AZ}_{norm}}{\cos\quad\theta_{X}}}} \right\}}}\end{matrix}$ where θ_(X) is the pitch angle calculated using theacceleration sensor of the X axis, Φ_(Y) is the roll angle calculatedusing the acceleration sensor of the Y axis, θ_(Z) is the pitch anglecalculated using the acceleration sensor of the Z axis, and Φ_(Z) is theroll angle calculated using the acceleration sensor of the Z axis. 4.The geomagnetic sensor of claim 3, wherein the tilt calculator performsthe second calculation in a manner that when the θ_(X) is between 0° and45°, if the θ_(Z) is 0° or more, the θ_(X) becomes the pitch angle, orif the θ_(Z) is under 0°, 180°−θ_(X) becomes the pitch angle, when theθ_(X) is 45° or more, if Φ_(Y) is under 45°, 90°−θ_(Z) becomes the pitchangle, or if the Φ_(Y) is 45° or more, the θ_(X) becomes the pitchangle, when the θ_(X) is between −45° and 0°, if the θ_(Z) is 0° ormore, the θ_(X) becomes the pitch angle, or if the θ_(Z) is under 0°,−180°−θ_(X) becomes the pitch angle, or when the θ_(X) is under −45°, ifthe Φ_(Y) is under 45°, θ_(Z)−90° becomes the pitch angle, or if theΦ_(Y) is 45° or more, the θ_(X) becomes the pitch angle.
 5. Thegeomagnetic sensor of claim 4, wherein the tilt calculator performs thesecond calculation in a manner that when the Φ_(Y) is between 0° and45°, if the Φ_(Y) is 0° or more, the Φ_(Y) becomes the roll angle, or ifthe Φ_(Z) is under 0°, 180°−Φ_(Y) becomes the roll angle, when the Φ_(Y)is 45° or more, if the Φ_(X) is under 45°, 90°−Φ_(Z) becomes the rollangle, or if the θ_(X) is 45° or more, the Φ_(X) becomes the roll angle,when the Φ_(Y) is between −45° and 0°, if the Φ_(Z) is 0° or more, theΦ_(Y) becomes the roll angle, or if the Φ_(Z) is under 0°, −180°−Φ_(Z)becomes the roll angle, or when the Φ_(Y) is under −45°, if the θ_(X) isunder 45°, Φ_(Z)−90° becomes the roll angle, or if the θ_(X) is 45° ormore, the Φ_(Y) becomes the roll angle.
 6. The geomagnetic sensor ofclaim 1, wherein the geomagnetic measurement module normalizes theoutput values of each flux gate of the X, Y and Z axes into values of apreset range using the following equations, and provides the normalizedvalues to the controller:$X_{norm} = \frac{\left( {X_{raw} - X_{offset}} \right)}{X_{Scale}}$$Y_{norm} = {\frac{\left( {Y_{raw} - Y_{offset}} \right)}{Y_{Scale}}\quad{and}}$$Z_{norm} = \frac{\left( {Z_{raw} - Z_{offset}} \right)}{Z_{Scale}}$where X_(norm), Y_(norm) and Z_(norm) are the normalized output valuesof each flux gate of the X, Y and Z axes respectively, X_(raw), Y_(raw)and Z_(raw) are the real output values of each flux gate of the X, Y andZ axes respectively, X_(offset), Y_(offset) and Z_(offset) are thepreset offset values of each flux gate of the X, Y and Z axesrespectively, and X_(scale), Y_(scale) and Z_(Scale) are the presetscale values of each flux gate of the X, Y and Z axes respectively. 7.The geomagnetic sensor of claim 6, wherein the controller calculates theazimuth by applying the normalized output values of each flux gate ofthe X, Y and Z and the readjusted pitch angle and roll angle to thefollowing equation:${\psi = {\tan^{- 1}\left( \frac{{Y_{norm}*\cos\quad\phi} - {Z_{norm}*\sin\quad\phi}}{\begin{matrix}{{X_{norm}*\cos\quad\theta} - {Y_{norm}*\sin\quad\theta*\sin\quad\phi} -} \\{Z_{norm}*\sin\quad\theta*\cos\quad\phi}\end{matrix}} \right)}},$ where X_(norm), Y_(norm) and Z_(norm) are thenormalized output values of each flux gate of the X, Y and Z axesrespectively, θ is the pitch angle, and Φ is the roll angle.
 8. A methodof calculating an azimuth, comprising: (a) calculating output values offlux gates of X, Y and Z axes using the flux gates of the X, Y and Zaxes mutually crossing at right angles; (b) primarily calculating apitch angle and a roll angle using acceleration sensors of X, Y and Zaxes mutually crossing at right angles; (c) adjusting at least one ofthe primarily calculated pitch angle and roll angle using an outputvalue of the acceleration sensor of the Z axis; and (d) calculating theazimuth using the readjusted pitch angle and roll angle and an outputvalue of a geomagnetic measurement module.
 9. The method of claim 8,wherein in the step of (b), the output values of each accelerationsensor of the X, Y and Z axes are normalized into values of a presetrange using the following equations:${AX}_{norm} = \frac{\left( {{AX}_{raw} - {AX}_{offset}} \right)}{{AX}_{Scale}}$${AY}_{norm} = {\frac{\left( {{AY}_{raw} - {AY}_{offset}} \right)}{{AY}_{Scale}}\quad{and}}$${AZ}_{norm} = \frac{\left( {{AZ}_{raw} - {AZ}_{offset}} \right)}{{AZ}_{Scale}}$where AX_(norm), AY_(norm) and AZ_(norm) are the normalized outputvalues of each acceleration sensor of the X, Y and Z axes respectively,AX_(raw), AY_(raw) and AZ_(raw) are the real output values of eachacceleration sensor of the X, Y and Z axes respectively, AX_(offset),AY_(offset) and AZ_(offset) are the preset offset values of eachacceleration sensor of the X, Y and Z axes respectively, and AX_(scale),AY_(scale) and AZ_(scale) are the preset scale values of eachacceleration sensor of the X, Y and Z axes respectively.
 10. The methodof claim 9, wherein in the step of (b), the pitch angle and roll angleare primarily calculated using the following equations: $\begin{matrix}{\theta_{X} = {\sin^{- 1}\left( {AX}_{norm} \right)}} \\{\phi_{Y} = {\sin^{- 1}\left( {{{AY}_{norm}/\cos}\quad\theta_{X}} \right)}} \\{\theta_{Z} = {{\sin^{- 1}\left( {AZ}_{mod} \right)}\left\{ {{wherein},{{AZ}_{mod} = \frac{{AZ}_{norm}}{\cos\quad\phi_{\quad Y}}}} \right\}\quad{and}}} \\{\phi_{Z} = {{\sin^{- 1}\left( {{{AZ}_{mod}/\cos}\quad\theta_{X}} \right)}\left\{ {{wherein},{{AZ}_{mod} = \frac{{AZ}_{norm}}{\cos\quad\theta_{X}}}} \right\}}}\end{matrix}$ where θ_(X) is the pitch angle calculated using theacceleration sensor of the X axis, Φ_(Y) is the roll angle calculatedusing the acceleration sensor of the Y axis, θ_(Z) is the pitch anglecalculated using the acceleration sensor of the Z axis, and Φ_(Z) is theroll angle calculated using the acceleration sensor of the Z axis. 11.The method of claim 10, wherein in the step of (c), the pitch angle isreadjusted in a manner that when the θ_(X) is between 0° and 45°, if theθ_(Z) is 0° or more, the θ_(X) becomes the pitch angle, or if the θ_(Z)is under 0°, 180°−θ_(X) becomes the pitch angle, when the θ_(X) is 45°or more, if Φ_(Y) is under 45°, 90°−Φ_(Z) becomes the pitch angle, or ifthe Φ_(Y) is 45° or more, the θ_(X) becomes the pitch angle, when theθ_(X) is between −45° and 0°, if the θ_(Z) is 0° or more, the θ_(X)becomes the pitch angle, or if the θ_(Z) is under 0°, −180°−θ_(X)becomes the pitch angle, or when the θ_(X) is under 45°, if the Φ_(Y) isunder −45°, θ_(Z)−90° becomes the pitch angle, or if the Φ_(Y) is 45° ormore, the θ_(X) becomes the pitch angle.
 12. The method of claim 11,wherein in the step of (c), the roll angle is readjusted in a mannerthat when the Φ_(Y) is between 0° and 45°, if the Φ_(Z) is 0° or more,the Φ_(Z) becomes the roll angle, or if the Φ_(Z) is under 0°,180°−Φ_(Y) becomes the roll angle, when the Φ_(Y) is 45° or more, if theΦ_(X) is under 45°, 90°−Φ_(Z) becomes the roll angle, or if the θ_(X) is45° or more, the Φ_(Y) becomes the roll angle, when the Φ_(Y) is between−45° and 0°, if the Φ_(Z) is 0° or more, the Φ_(Y) becomes the rollangle, or if the Φ_(Z) is under 0°, −180°−Φ_(Y) becomes the roll angle,or when the Φ_(Y) is under −45°, if the θ_(X) is under 45°, Φ_(Z)−90°becomes the roll angle, or if the θ_(X) is 45° or more, the Φ_(Y)becomes the roll angle.
 13. The method of claim 9, wherein in the stepof (a), the output values of each flux gate of the X, Y and Z axes arenormalized into values of a preset range using the following equations:$\begin{matrix}{X_{norm} = \frac{\left( {X_{raw} - X_{offset}} \right)}{X_{Scale}}} \\{Y_{norm} = {\frac{\left( {Y_{raw} - Y_{offset}} \right)}{Y_{Scale}}\quad{and}}} \\{Z_{norm} = \frac{\left( {Z_{raw} - Z_{offset}} \right)}{Z_{Scale}}}\end{matrix}$ where X_(norm), Y_(norm) and Z_(norm) are the normalizedoutput values of each flux gate of the X, Y and Z axes respectively,X_(raw), Y_(raw) and Z_(raw) are the real output values of each fluxgate of the X, Y and Z axes respectively, X_(offset), Y_(offset) andZ_(offset) are the preset offset values of each flux gate of the X, Yand Z axes respectively, and X_(Scale), Y_(Scale) and Z_(Scale) are thepreset scale values of each flux gate of the X, Y and Z axesrespectively.
 14. The method of claim 13, wherein in the step of (d),the azimuth is calculated by applying the normalized output values ofeach flux gate of the X, Y and Z and the readjusted pitch angle and rollangle to the following equation:${\psi = {\tan^{- 1}\left( \frac{{Y_{norm}*\cos\quad\phi} - {Z_{norm}*\sin\quad\phi}}{{X_{norm}*\cos\quad\theta} - {Y_{{norm}\quad}*\sin\quad\theta*\sin\quad\phi} - {Z_{norm}*\sin\quad\theta*\cos\quad\phi}} \right)}},$where X_(norm), Y_(norm) and Z_(norm) are the normalized output valuesof each flux gate of the X, Y and Z axes respectively, θ is the pitchangle, and Φ is the roll angle.
 15. At least one computer readablemedium storing instructions that control at least one processor toperform a method of calculating an azimuth, comprising: (a) calculatingoutput values of flux gates of X, Y and Z axes using the flux gates ofthe X, Y and Z axes mutually crossing at right angles; (b) primarilycalculating a pitch angle and a roll angle using acceleration sensors ofX, Y and Z axes mutually crossing at right angles; (c) adjusting atleast one of the primarily calculated pitch angle and roll angle usingan output value of the acceleration sensor of the Z axis; and (d)calculating the azimuth using the readjusted pitch angle and roll angleand an output value of a geomagnetic measurement module.
 16. At leastone computer readable medium as recited in claim 15, wherein in the stepof (b), the output values of each acceleration sensor of the X, Y and Zaxes are normalized into values of a preset range using the followingequations: $\begin{matrix}{{AX}_{norm} = \frac{\left( {{AX}_{raw} - {AX}_{offset}} \right)}{{AX}_{Scale}}} \\{{AY}_{norm} = {\frac{\left( {{AY}_{raw} - {AY}_{offset}} \right)}{{AY}_{Scale}}\quad{and}}} \\{{AZ}_{norm} = \frac{\left( {{AZ}_{raw} - {AZ}_{offset}} \right)}{{AZ}_{Scale}}}\end{matrix}$ where AX_(norm), AY_(norm) and AZ_(norm) are thenormalized output values of each acceleration sensor of the X, Y and Zaxes respectively, AX_(raw), AY_(raw) and AZ_(raw) are the real outputvalues of each acceleration sensor of the X, Y and Z axes respectively,AX_(offset), AY_(offset) and AZ_(offset) are the preset offset values ofeach acceleration sensor of the X, Y and Z axes respectively, andAX_(scale), AY_(scale) and AZ_(scale) are the preset scale values ofeach acceleration sensor of the X, Y and Z axes respectively.
 17. Atleast one computer readable medium as recited in claim 16, wherein inthe step of (b), the pitch angle and roll angle are primarily calculatedusing the following equations: $\begin{matrix}{\theta_{X} = {\sin^{- 1}\left( {AX}_{norm} \right)}} \\{\phi_{Y} = {\sin^{- 1}\left( {{{AY}_{norm}/\cos}\quad\theta_{X}} \right)}} \\{\theta_{Z} = {{\sin^{- 1}\left( {AZ}_{mod} \right)}\left\{ {{wherein},{{AZ}_{mod} = \frac{{AZ}_{norm}}{\cos\quad\phi_{\quad Y}}}} \right\}\quad{and}}} \\{\phi_{Z} = {{\sin^{- 1}\left( {{{AZ}_{mod}/\cos}\quad\theta_{X}} \right)}\left\{ {{wherein},{{AZ}_{mod} = \frac{{AZ}_{norm}}{\cos\quad\theta_{X}}}} \right\}}}\end{matrix}$ where θ_(X) is the pitch angle calculated using theacceleration sensor of the X axis, Φ_(Y) is the roll angle calculatedusing the acceleration sensor of the Y axis, θ_(Z) is the pitch anglecalculated using the acceleration sensor of the Z axis, and Φ_(Z) is theroll angle calculated using the acceleration sensor of the Z axis. 18.At least one computer readable medium as recited in claim 17, wherein inthe step of (c), the pitch angle is readjusted in a manner that when theθ_(X) is between 0° and 45°, if the θ_(Z) is 0° or more, the θ_(X)becomes the pitch angle, or if the θ_(Z) is under 0°, 180°−θ_(X) becomesthe pitch angle, when the θ_(X) is 45° or more, if Φ_(Y) is under 45°,90°−θ_(Z) becomes the pitch angle, or if the Φ_(Y) is 45° or more, theθ_(X) becomes the pitch angle, when the θ_(X) is between −45° and 0°, ifthe θ_(Z) is 0° or more, the θ_(X) becomes the pitch angle, or if theθ_(Z) is under 0°, −180°−θ_(X) becomes the pitch angle, or when theθ_(X) is under −45°, if the Φ_(Y) is under 45°, θ_(Z)−90° becomes thepitch angle, or if the Φ_(Y) is 45° or more, the θ_(X) becomes the pitchangle.
 19. At least one computer readable medium as recited in claim 18,wherein in the step of (c), the roll angle is readjusted in a mannerthat when the Φ_(Y) is between 0° and,45°, if the Φ_(Z) is 0° or more,the Φ_(Z) becomes the roll angle, or if the Φ_(Z) is under 0°, 180°−Φ_(Y) becomes the roll angle, when the Φ_(Y) is 45° or more, if theΦ_(X) is under 45°, 90°−Φ_(Z) becomes the roll angle, or if the θ_(X) is45° or more, the Φ_(Y) becomes the roll angle, when the Φ_(Y) is between−45° and 0°, if the Φ_(Z) is 0° or more, the Φ_(Y) becomes the rollangle, or if the Φ_(Z) is under 0°, −180°−Φ_(Y) becomes the roll angle,or when the Φ_(Y) is under −45°, if the θ_(X) is under 45°, Φ_(Z)−90°becomes the roll angle, or if the θ_(X) is 45° or more, the Φ_(Y)becomes the roll angle.
 20. At least one computer readable medium asrecited in 16, wherein in the step of (a), the output values of eachflux gate of the X, Y and Z axes are normalized into values of a presetrange using the following equations: $\begin{matrix}{X_{norm} = \frac{\left( {X_{raw} - X_{offset}} \right)}{X_{Scale}}} \\{Y_{norm} = {\frac{\left( {Y_{raw} - Y_{offset}} \right)}{Y_{Scale}}\quad{and}}} \\{Z_{norm} = \frac{\left( {Z_{raw} - Z_{offset}} \right)}{Z_{Scale}}}\end{matrix}$ where X_(norm), Y_(norm) and Z_(norm) are the normalizedoutput values of each flux gate of the X, Y and Z axes respectively,X_(raw), Y_(raw) and Z_(raw) are the real output values of each fluxgate of the X, Y and Z axes respectively, X_(offset), Y_(offset) andZ_(offset) are the preset offset values of each flux gate of the X, Yand Z axes respectively, and X_(Scale), Y_(Scale) and Z_(Scale) are thepreset scale values of each flux gate of the X, Y and Z axesrespectively.
 21. At least one computer readable medium as recited in20, wherein in the step of (d), the azimuth is calculated by applyingthe normalized output values of each flux gate of the X, Y and Z and thereadjusted pitch angle and roll angle to the following equation:${\psi = {\tan^{- 1}\left( \frac{{Y_{norm}*\cos\quad\phi} - {Z_{norm}*\sin\quad\phi}}{{X_{norm}*\cos\quad\theta} - {Y_{{norm}\quad}*\sin\quad\theta*\sin\quad\phi} - {Z_{norm}*\sin\quad\theta*\cos\quad\phi}} \right)}},$where X_(norm), Y_(norm) and Z_(norm) are the normalized output valuesof each flux gate of the X, Y and Z axes respectively, θ is the pitchangle, and Φ is the roll angle.